﻿#ifndef MOVESTOCK_H
#define MOVESTOCK_H


#include "orderintf.h"
#include "stock.h"

/**
 * @brief The MoveStock class 具体实现命令的类，完成修改Stock位置的功能，
 * 命令中需要的参数在构造函数中就给过来，比如修改哪一个Stock，移动到哪里（Pos）
 * 或者通过全局的一些变量传递参数
 */
class MoveStock : public OrderIntf
{
public:
    /**
     * @brief MoveStock 移动物品
     * @param stock 要移动的物品
     * @param path  移动的路径，第一个值表示原始位置，第二个表示目的位置
     */
    MoveStock(Stock *stock, QPair<QPoint, QPoint> path);

    int execute() override;

    int redo() override;

private:
    Stock *m_stock;
    QPair<QPoint, QPoint> m_path;
};

#endif // MOVESTOCK_H
